一つのEC2 Auto Scaling グループで、重み付けが異なるインスタンスタイプを起動させるスケジュールスケーリングは可能か教えてください
困っている内容
Amazon EC2 Auto Scaling のスケジュールされたスケーリングを以下のように一つの EC2 Auto Scaling Group で曜日によって実施したいのですが実現は可能ですか?
■実現したい条件
・平日は重み10のインスタンスタイプを2つ起動
・土日は重み1のインスタンスタイプを2つ起動
どう対応すればいいの?
一つの EC2 Auto Scaling Group で”インスタンスの重み付け” にて、異なるインスタンスタイプをスケジュールスケーリングさせることは出来ません。
EC2 Auto Scaling はインスタンスを起動する際に、キャパシティを一致させることよりも、配分戦略に基づいてインスタンスを起動することを優先する為です。
Amazon EC2 Auto Scaling のインスタンスの重み付けを設定する - Amazon EC2 Auto Scaling
Amazon EC2 Auto Scaling は、インスタンスをプロビジョニングして希望するキャパシティーに達すると、インスタンスをアベイラビリティーゾーン間に分散させます。オンデマンドおよびスポットインスタンスの配分戦略を順守することが、キャパシティー超過を回避することよりも優先されます。
配分戦略は Auto Scaling Group にあたり、以下の通り一つしか選択が出来ません。
例えば、「高い優先順位(prioritized)」の配分戦略を使用した場合、キャパシティに限らず起動テンプレートに設定されている優先度の高いインスタンスが起動されることとなります。
複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ - Amazon EC2 Auto Scaling
Amazon EC2 Auto Scaling グループは、起動テンプレートのリスト内でのインスタンスタイプの優先度を使用して、オンデマンドキャパシティーを満たすときに最初に使用するインスタンスタイプを決定します。
回避策として Auto Scaling Group を一つではなく複数使い分けることで、曜日ごとに異なるインスタンスタイプでスケジュールスケーリングが可能なので検討してみてください。
参考資料
Amazon EC2 Auto Scaling のインスタンスの重み付けを設定する - Amazon EC2 Auto Scaling
複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ - Amazon EC2 Auto Scaling